/**   
 * Copyright © 2019 dream horse Info. Tech Ltd. All rights reserved.
 * @Package: com.gitee.mybatis.fl.entity
 * @author: flying-cattle  
 * @date: 2019年4月9日 下午8:15:25 
 */
package com.gitee.flying.cattle.mdg.entity;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**   
 * Copyright: Copyright (c) 2019 
 * 
 * <p>说明： 自动生成需要的基本信息</P>
 * @version: v3.0.0
 * @author: flying-cattle
 * 
 * Modification History:
 * Date         	Author          Version          Description
 *---------------------------------------------------------------*
 * 2019年4月9日      		flying-cattle   v3.0.0           initialize
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BasisInfo implements Serializable{
	private static final long serialVersionUID = 123123L;

	private String project;
	
	private String author;
	
	private String version;
	
	private String dbUrl;
	
	private String dbName;
	
	private String dbPassword;
	
	private String database;

	/**
	 * 表名
	 */
	private String table;

	/**
	 * 大驼峰实体类名
	 */
	private String entityName;

	/**
	 * 小驼峰实体类名
	 */
	private String objectName;
	
	private String entityComment;
	
	private String createTime;

	/**
	 * 数据库全部字段
	 */
	private String agile;

	/**
	 * 数据库全部字段的#符合传递参数
	 */
	private String allFieldsParam;

	/**
	 * 数据库全部字段的#符合批量传递参数  如 #{item.auditTimestamp}
	 */
	private String allFieldsParamBatch;
	
	private String entityUrl;

	private String voUrl;

	private String daoUrl;
	
	private String mapperUrl;
	
	private String serviceUrl;
	
	private String serviceImplUrl;
	
	private String abstractControllerUrl;
	
	private String controllerUrl;
	
	private String swaggerConfigUrl;
	
	private String idType;
	
	private String idJdbcType;

	/**
	 * 数据库全部字段信息的list
	 */
	private List<PropertyInfo> cis;
	
	private String isSwagger="true";

	/**
	 * 数据库_主键
	 */
	private String keyColumn;

	/**
	 * 实体类_主键
	 */
	private String keyProperty;

	/**
	 * 实体类_主键_大驼峰
	 */
	private String keyPropertyUp;

	/**
	 * 服务名
	 */
	private String serviceName;

	// 前端 start
	/**
	 * 消息国际化-中文版
	 */
	private String langZhUrl;

	/**
	 * list的html
	 */
	private String listHtmlUrl;

	/**
	 * edit的html
	 */
	private String editHtmlUrl;

	/**
	 * list的js
	 */
	private String listJsUrl;

	/**
	 * edit的js
	 */
	private String editJsUrl;

	/**
	 * validation校验
	 */
	private String validationUrl;
	// 前端 end


	
	private Set<String> pkgs = new HashSet<String>();
	
	public BasisInfo(String project, String author, String version, String dbUrl, String dbName, String dbPassword,
			String database, String createTime, String agile, String entityUrl,String voUrl, String daoUrl, String mapperUrl,
			String serviceUrl, String serviceImplUrl, String controllerUrl,String isSwagger, String keyColumn, String keyProperty,
		    String serviceName, String langZhUrl, String listHtmlUrl, String editHtmlUrl, String listJsUrl, String editJsUrl,
		    String validationUrl, String keyPropertyUp) {
		super();
		this.project = project;
		this.author = author;
		this.version = version;
		this.dbUrl = dbUrl;
		this.dbName = dbName;
		this.dbPassword = dbPassword;
		this.database = database;
		this.createTime = createTime;
		this.agile = agile;
		this.entityUrl = entityUrl;
		this.voUrl = voUrl;
		this.daoUrl = daoUrl;
		this.mapperUrl = mapperUrl;
		this.serviceUrl = serviceUrl;
		this.serviceImplUrl = serviceImplUrl;
		this.controllerUrl = controllerUrl;
		this.abstractControllerUrl = controllerUrl.substring(0, controllerUrl.lastIndexOf("."))+".aid";
		this.swaggerConfigUrl=controllerUrl.substring(0, controllerUrl.lastIndexOf("."))+".config";
		this.isSwagger=isSwagger;
		this.keyColumn = keyColumn;
		this.keyProperty =  keyProperty;
		this.keyPropertyUp = keyPropertyUp;
		this.serviceName = serviceName;
		this.langZhUrl = langZhUrl;
		this.listHtmlUrl = listHtmlUrl;
		this.editHtmlUrl = editHtmlUrl;
		this.listJsUrl = listJsUrl;
		this.editJsUrl = editJsUrl;
		this.validationUrl = validationUrl;
	}
}
